package com.carb.service;

import com.carb.dto.*;
import com.carb.entity.Project;
import com.baomidou.mybatisplus.extension.service.IService;
import com.carb.entity.ProjectType;
import com.carb.enums.CommonStatus;
import com.carb.result.PageResult;
import com.carb.vo.ProjectListVO;
import com.carb.vo.ProjectVO;

import java.util.List;

/**
 * <p>
 * 服务项目管理 服务类
 * </p>
 *
 * @author XuChaoyang
 * @since 2025-01-18
 */
public interface IProjectService extends IService<Project> {

    void addProject(ProjectAddDTO projectAddDTO);

    PageResult<ProjectVO> pageQuery(ProjectPageQueryDTO projectPageQueryDTO);

    ProjectVO getProjectById(Long id);

    void updateProject(ProjectUpdateDTO projectUpdateDTO);

    void updateStatus(Long id, CommonStatus status);

    void deleteProject(Long id);

    void addProjectType(String projectTypeName);

    PageResult<ProjectType> pageQueryProjectType(ProjectTypePageQueryDTO projectTypePageQueryDTO);

    void updateProjectTypeStatus(Long id, CommonStatus status);

    ProjectType getProjectTypeById(Long id);

    void updateProjectType(ProjectTypeUpdateDTO projectTypeUpdateDTO);

    void deleteProjectType(Long id);

    List<ProjectType> listProjectType();

    List<ProjectListVO> listProject();

    List<ProjectSalesDTO> getProjectTop10();
}
